//
//  HFHomeTableViewController.swift
//  HFWeChat
//
//  Created by 黄来峰 on 16/4/17.
//  Copyright © 2016年 itcast. All rights reserved.
//https://api.weibo.com/2/statuses/home_timeline.json

import UIKit
import AFNetworking

let HomeCellID = "HOMETABLEVIEWCELLID"
class HFHomeTableViewController: HFVisitorViewController {
    
    
    var userStatuesArr: [HFHomeStatuesModel]?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //判断用户是否登录入，如果登录了就加载首页的数据
        if !isLogin{
            
            visitorView?.setVistorInfo(nil, titleMessage: nil)
            return
        }
        //注册Cell
        setUpTableviewInfo()
        
        //使用B包来传递数据
        loadData { [weak self] (userStatues) -> () in
            self?.userStatuesArr = userStatues
            self?.tableView.reloadData()
        }
    }
    
    //用来设置tableView和注册cell的方法
    
    func setUpTableviewInfo(){
        tableView.registerClass(HFHomeStatuesCell.self, forCellReuseIdentifier: HomeCellID)
        //设置cell高度
        tableView.rowHeight = 200
    }
}

//tableView的数据源方法
extension HFHomeTableViewController{
    
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return userStatuesArr?.count ?? 0
    }
    
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellID, forIndexPath: indexPath) as! HFHomeStatuesCell
//        cell.textLabel!.text = self.userStatuesArr![indexPath.row].text
        return cell
    }
    
}

extension HFHomeTableViewController{
    //加载数据
    func loadData(callback:(userStatues:[HFHomeStatuesModel])->()){
        let userAccount = HFUserAccountTools.sharedTools
        //网络请求的URLString
        let urlString = "https://api.weibo.com/2/statuses/home_timeline.json"
        let params: [String: AnyObject] = [
            "access_token": userAccount.access_token!
        ]
        //获取网络请求管理的单例对象
        let homeTools: HFNetWorkTools = HFNetWorkTools.sharedTools
               homeTools.request(.GET, urlString: urlString, params: params) { (response, error) -> () in
            guard  response != nil else{
            
            print(error)
                return
            }
            //判断我们得到的数据是否存在 而且是一个数组
                if let array = response?["statuses"] as?[[String: AnyObject]]{
                //定义一个临时数组
                    var tempArr:[HFHomeStatuesModel] = [HFHomeStatuesModel]()
                    //遍历数组转模型
                    for dic in array{
                        //将字典传入，字典转模型
                    let statues = HFHomeStatuesModel(dict: dic)
                        //往数组中添加模型
                        tempArr.append(statues)
                    }
                   
                    callback(userStatues: tempArr)
                    
                }
                //进行字典转模型
        }
        
        
        
//        //设置工具类的数据解析方法
//        homeTools.responseSerializer = AFHTTPResponseSerializer()
//        
//        
//        homeTools.GET(urlString, parameters: params, progress: nil, success: { (_, response) -> Void in
//            
//            print(NSString(data: response as! NSData, encoding: NSUTF8StringEncoding))
//            
//            }) { (_, error) -> Void in
//        }
    }
}
